package template

import "encoding/json"

type Template struct {
	TempType string `json:"temp_type"`
	Sn string `json:"sn"`
	Params string `json:"params"`
}

//实例化发送模板并返回发送数据
func NewRabitMsg(tempType string, sn string, params interface{}) (string, error) {
	paramsJson, err := json.Marshal(params)
	if err != nil{
		return "", err
	}
	tempObj := Template{
		TempType: tempType,
		Sn: sn,
		Params: string(paramsJson),
	}
	tempJson, err := json.Marshal(tempObj)
	if err != nil{
		return "", err
	}
	return string(tempJson), nil
}

//解码模板
func DecodeMsg(msg string) (*Template, error) {
	var temp Template
	if err := json.Unmarshal([]byte(msg), &temp); err != nil{
		return nil, err
	}
	return &temp, nil
}
